# 导入必要的库和模块
import pickle
import gradio as gr
import cv2
import numpy as np

# 加载保存的KNN模型，这样我们可以使用预训练的模型进行预测
with open('best_knn_model.pkl','rb') as f:
	knn_model = pickle.load(f) 

# 定义预测函数，这个函数将用于Gradio接口进行预测
def predict_digit(image):
	image = cv2.resize(image,(8,8))
	predict_digit = knn_model.predict([image.flatten()])[0]
	return str(predict_digit)

# 创建Gradio接口，这个接口将用于用户输入和显示预测结果
interface = gr.Interface(
	fn = predict_digit,
	inputs = 'sketchpad',
	outputs = 'text',
)

# 启动Gradio接口，用户可以通过这个接口进行交互
interface.launch()